Programmed Instruction, Learning, Or Teaching (PILOT) is a simle historic programming language developed in the 1960s.[1] Like its younger sibling LOGO programming language, it was an early foray into the technology of computer assisted instruction (CAI).
Contents |
PILOT was developed by John Amsden Starkweather, a psychology professor at the University of California, San Francisco medical center. In 1962 he developed a simple language for automating learnng tests called Computest. Starting in 1968, he developed a follow-on project called PILOT, for various computers of the time such as the SDS 940.[2]
A line of PILOT code contains (from left to right) the following syntax elements:
A label can also be alone in a line, not followed by other code. The syntax for a label is an asterisk followed by an identifier (alphanumeric string with alphabetic initial character).
The following commands are used in "core PILOT". Lines beginning with "R:" indicate a remark (or a comment) explaining the code that follows.
R:Next line of input replaces current contents of accept buffer A: R:Next line of input replaces accept buffer, and string variable 'FREE' A:$FREE R:Next 3 lines of input assigned to string variables 'X', 'Y' and 'Z' A:$X,$Y,$Z R:Numeric input assigned to numeric variable "Q" A:#Q
R:Assign arithmetic mean of #X and #Y to #AM C:#AM=(#X+#Y)/2
J:*RESTART
R:Search accept buffer for "TRUTH", the value of $MEXICO and "YOUTH", in that order M:TRUTH,$MEXICO,YOUTH
The first match string (if any) that is a substring of the accept buffer is assigned to the special variable $MATCH. The buffer characters left of the first match are assigned to $LEFT, and the characters on the right are assigned to $RIGHT.
The match flag is set to 'yes' or 'no', depending on whether a match is made. Any statement that has a Y following the command letter is processed only if the match flag is set. Statements with N are processed only if the flag is not set.
R:Output a literal string T:Thank you for your support.
R:Output a variable expression T:Thank you, $NAME.
R:Call subroutine starting at label *INITIALIZE U:*INITIALIZE
R:Type message if x>y+z T(#X>#Y+#Z):Condition met
Extensions to core PILOT include arrays and floating point numbers in Apple PILOT, and implementation of LOGO-inspired turtle graphics in Atari PILOT.[3]
Versions of PILOT overlaid on the BASIC interpreters of early microcomputers were not unknown in the late 1970s and early 1980s, and Byte Magazine at one point published a non-Turing complete derivative of PILOT known as Waduzitdo by Larry Kheriarty as a way of demonstrating what a computer was capable of.[4][5] A 1983 product called Vanilla PILOT for the Commodore 64 combined some features of LOGO.[6]
In 1991 the Institute of Electrical and Electronics Engineers (IEEE) published a standard for Pilot as IEEE Std 1154-1991. It has since been withdrawn.[7]
An open source implementation was called RPilot,[1] and another called Sky Pilot begun in 2005.[8]
|